Understanding The Data -- Minecraft Mining
A Deep Dive into the Distribution of Blocks in Minecraft
What is the Optimal Method to Mine in Minecraft
To answer this question we must first collect data. To do this I created a minecraft mod that randomly teleports the player, samples a 500x50x500 (X,Y,Z) set of blocks around the player and logs those blocks into a csv. It repeats this a total of 10 times creating 10 samples of 500x50x500 blocks
The mod can be seen here: https://github.com/JPrier/MinecraftBlocksDistribution
import pandas as pd
import plotly.express as px
from IPython.display import HTML
# Adjust samples to be same distance from player
df["XFromPlayer"] = (df["playerX"] - df["X"]).abs()
df["ZFromPlayer"] = (df["playerZ"] - df["Z"]).abs()
# Get blocks that we care about
importantBlocks = ['coal_ore', 'gold_ore', 'iron_ore', 'diamond_ore', 'lapis_ore', 'redstone_ore', 'emerald_ore']
specialBlocks = ['diamond_ore', 'lapis_ore', 'redstone_ore', 'emerald_ore']
df_blocks = df.loc[df['Block'].isin(importantBlocks)]
df_special_blocks = df.loc[df['Block'].isin(specialBlocks)]
# Create distribution plots of block vs Y level
fig = px.histogram(df_blocks, x="Y", color="Block")
# HTML(fig.to_html(include_plotlyjs='cdn'))
HTML(fig.to_html(include_plotlyjs='cdn'))